package model;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;


/**
 * The persistent class for the vaga database table.
 * 
 */
@Entity
public class Vaga implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	private int codVaga;
	private int situacaoVaga;
	private String tipoVaga;
	private String aceitaDefVaga;
	private int qtdeVaga;
	private int numMaxCandVaga;
	private String descAtivVaga;
	private String CNHVaga;
	private String sexoVaga;
	private String estCivilVaga;
	private double salarioVaga;
	private String horarioVaga;
	private Integer fxEt1;
	private Integer fxEt2;
	@Temporal(TemporalType.TIMESTAMP)
	private Date dataCadVaga;

	//bi-directional many-to-one association to Listacandidato
	@OneToMany(mappedBy="vaga")
	private List<Listacandidato> listacandidatos;

	//bi-directional many-to-one association to Cbo
	@ManyToOne
	@JoinColumn(name="codCBO")
	private Cbo cbo;

	//bi-directional many-to-one association to Empregador
	@ManyToOne
	@JoinColumn(name="codEmp")
	private Empregador empregador;

	//bi-directional many-to-one association to Vagacurso
	@OneToMany(mappedBy="vaga")
	private List<Vagacurso> vagacursos;

	//bi-directional many-to-one association to Vagaconhectec
	@OneToMany(mappedBy="vaga")
	private List<Vagaconhectec> vagaconhectecs;

	public Vaga() {
	}

	public int getCodVaga() {
		return this.codVaga;
	}

	public void setCodVaga(int codVaga) {
		this.codVaga = codVaga;
	}

	public String getAceitaDefVaga() {
		return this.aceitaDefVaga;
	}

	public void setAceitaDefVaga(String aceitaDefVaga) {
		this.aceitaDefVaga = aceitaDefVaga;
	}

	public String getCNHVaga() {
		return this.CNHVaga;
	}

	public void setCNHVaga(String CNHVaga) {
		this.CNHVaga = CNHVaga;
	}

	public Date getDataCadVaga() {
		return this.dataCadVaga;
	}

	public void setDataCadVaga(Date dataCadVaga) {
		this.dataCadVaga = dataCadVaga;
	}

	public String getDescAtivVaga() {
		return this.descAtivVaga;
	}

	public void setDescAtivVaga(String descAtivVaga) {
		this.descAtivVaga = descAtivVaga;
	}

	public String getEstCivilVaga() {
		return this.estCivilVaga;
	}

	public void setEstCivilVaga(String estCivilVaga) {
		this.estCivilVaga = estCivilVaga;
	}

	public String getHorarioVaga() {
		return this.horarioVaga;
	}

	public void setHorarioVaga(String horarioVaga) {
		this.horarioVaga = horarioVaga;
	}

	public int getNumMaxCandVaga() {
		return this.numMaxCandVaga;
	}

	public void setNumMaxCandVaga(int numMaxCandVaga) {
		this.numMaxCandVaga = numMaxCandVaga;
	}

	public int getQtdeVaga() {
		return this.qtdeVaga;
	}

	public void setQtdeVaga(int qtdeVaga) {
		this.qtdeVaga = qtdeVaga;
	}

	public double getSalarioVaga() {
		return this.salarioVaga;
	}

	public void setSalarioVaga(double salarioVaga) {
		this.salarioVaga = salarioVaga;
	}

	public String getSexoVaga() {
		return this.sexoVaga;
	}

	public void setSexoVaga(String sexoVaga) {
		this.sexoVaga = sexoVaga;
	}

	public Integer getFxEt1() {
		return fxEt1;
	}

	public void setFxEt1(Integer fxEt1) {
		this.fxEt1 = fxEt1;
	}

	public Integer getFxEt2() {
		return fxEt2;
	}

	public void setFxEt2(Integer fxEt2) {
		this.fxEt2 = fxEt2;
	}

	public int getSituacaoVaga() {
		return situacaoVaga;
	}

	public void setSituacaoVaga(int situacaoVaga) {
		this.situacaoVaga = situacaoVaga;
	}

	public String getTipoVaga() {
		return this.tipoVaga;
	}

	public void setTipoVaga(String tipoVaga) {
		this.tipoVaga = tipoVaga;
	}

	public List<Listacandidato> getListacandidatos() {
		return this.listacandidatos;
	}

	public void setListacandidatos(List<Listacandidato> listacandidatos) {
		this.listacandidatos = listacandidatos;
	}

	public Listacandidato addListacandidato(Listacandidato listacandidato) {
		getListacandidatos().add(listacandidato);
		listacandidato.setVaga(this);

		return listacandidato;
	}

	public Listacandidato removeListacandidato(Listacandidato listacandidato) {
		getListacandidatos().remove(listacandidato);
		listacandidato.setVaga(null);

		return listacandidato;
	}

	public Cbo getCbo() {
		return this.cbo;
	}

	public void setCbo(Cbo cbo) {
		this.cbo = cbo;
	}

	public Empregador getEmpregador() {
		return this.empregador;
	}

	public void setEmpregador(Empregador empregador) {
		this.empregador = empregador;
	}

	public List<Vagacurso> getVagacursos() {
		return this.vagacursos;
	}

	public void setVagacursos(List<Vagacurso> vagacursos) {
		this.vagacursos = vagacursos;
	}

	public Vagacurso addVagacurso(Vagacurso vagacurso) {
		getVagacursos().add(vagacurso);
		vagacurso.setVaga(this);

		return vagacurso;
	}

	public Vagacurso removeVagacurso(Vagacurso vagacurso) {
		getVagacursos().remove(vagacurso);
		vagacurso.setVaga(null);

		return vagacurso;
	}

	public List<Vagaconhectec> getVagaconhectecs() {
		return this.vagaconhectecs;
	}

	public void setVagaconhectecs(List<Vagaconhectec> vagaconhectecs) {
		this.vagaconhectecs = vagaconhectecs;
	}

	public Vagaconhectec addVagaconhectec(Vagaconhectec vagaconhectec) {
		getVagaconhectecs().add(vagaconhectec);
		vagaconhectec.setVaga(this);

		return vagaconhectec;
	}

	public Vagaconhectec removeVagaconhectec(Vagaconhectec vagaconhectec) {
		getVagaconhectecs().remove(vagaconhectec);
		vagaconhectec.setVaga(null);

		return vagaconhectec;
	}

}